/* * Copyright 2014 mango.jfaster.org * * The Mango Project licenses this file to you under the Apache License, * version 2.0 (the "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package org.jfaster.mango.support; import org.apache.commons.configuration.Configuration; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.dbcp.BasicDataSource; import javax.sql.DataSource; /** * @author ash */ public class DataSourceConfig { private static String DIR = "hsqldb"; private static Configuration[] CONFIGS; static { try { CONFIGS = new Configuration[5]; CONFIGS[0] = new PropertiesConfiguration(DIR + "/database.properties"); CONFIGS[1] = new PropertiesConfiguration(DIR + "/database1.properties"); CONFIGS[2] = new PropertiesConfiguration(DIR + "/database2.properties"); CONFIGS[3] = new PropertiesConfiguration(DIR + "/database3.properties"); CONFIGS[4] = new PropertiesConfiguration(DIR + "/database4.properties"); } catch (ConfigurationException e) { e.printStackTrace(); } } public static boolean isUseMySQL() { return "mysql".equals(DIR); } public static String getDir() { return DIR; } public static DataSource getDataSource() { return getDataSource(0, true, 1); } public static DataSource getDataSource(int i) { return getDataSource(i, true, 1); } public static DataSource getDataSource(int i, boolean autoCommit, int maxActive) { String driverClassName = getDriverClassName(i); String url = getUrl(i); String username = getUsername(i); String password = getPassword(i); BasicDataSource ds = new BasicDataSource(); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); ds.setInitialSize(1); ds.setMaxActive(maxActive); ds.setDriverClassName(driverClassName); ds.setDefaultAutoCommit(autoCommit); return ds; } private static String getDriverClassName(int i) { return CONFIGS[i].getString("jdbc.driver"); } private static String getUrl(int i) { return CONFIGS[i].getString("jdbc.url"); } private static String getUsername(int i) { return CONFIGS[i].getString("jdbc.username"); } private static String getPassword(int i) { return CONFIGS[i].getString("jdbc.password"); } }